package com.kusen.juc;

/**
 * 1.多线程操作口诀：在高内聚，低偶和的情况下，线程操作资源类（如果不懂，可以想想生活中的例子。银行窗口排队）
 * 2.创建线程有几种方式：
 * 1.继承Tread类
 * 2.实现Runnable接口
 * 3.实现Callable接口，这个线程是有返回值
 * 4.使用匿名内部类创建
 * 5.使用线程池方式创建
 */
//资源类
class Phone {

    //发送邮件
    public String sendEmail() {
        System.out.println("我是一个发邮件的方法");
        return "邮件";
    }

    //发送短信
    public String sendSms() {
        System.out.println("我是一个发送短信的方法");
        return "短信";
    }

}

public class JucText1 {
    //高内聚，低耦合。线程操作资源类
    public static void main(String[] args) {
        //创建资源类
        Phone phone = new Phone();
        //创建线程
        new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + ": " + phone.sendEmail());
        }, "A").start();
        new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + ": " + phone.sendSms());
        }, "B").start();
        new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + ": " + phone.sendEmail());
        }, "C").start();
        new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + ": " + phone.sendSms());
        }, "D").start();
    }
}
